var receiverStore2 = new Ext.data.Store({
	fields : [ 'contact_id', 'cust_id', 'contact_name' ],
	data : [ {
		contact_id : '1',
		cust_id : '2',
		contact_name : '3'
	} ]
});

Ext.define('HIT.view.ExpressPrintGrid', {
	extend : 'Ext.grid.Panel',
	alias : 'widget.expressprintgrid',

	cls : 'custom-grid',
	frame : false,
	width : 1200,
	columnLines : false,
	store : 'ExpressPrint',
	plugins : [ Ext.create('Ext.grid.plugin.CellEditing', {
		clicksToEdit : 1
	}) ],

	initComponent : function() {
		var me = this;

		Ext.applyIf(me, {
			columns : [ {
				xtype : 'rownumberer',
				width : 30
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'id',
				text : Share.T('id'),
				hidden : true
			}, {
				xtype : 'gridcolumn',
				width : 160,
				align : 'center',
				dataIndex : 'document_no',
				text : Share.T('单据号')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 100,
				dataIndex : 'document_date',
				format : 'Y-m-d',
				text : Share.T('单据日期')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'cust_id',
				text : Share.T('cust_id'),
				hidden : true
			}, {
				xtype : 'gridcolumn',
				width : 180,
				align : 'left',
				dataIndex : 'customer',
				style:'text-align:center;',
				text : Share.T('客户／供应商')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'receiver',
				style:'text-align:center;',
				text : Share.T('收件人'),
				editor:{
					ignoreNoChange : true,
					xtype : 'combo',
					mode: 'local',
					editable : false,
					fieldStyle:'background:#FFFF80;',
	           		labelWidth:60,
	            	store : new Ext.data.JsonStore({
						proxy: {
							type: 'ajax', 
							url : ctx + '/getContacts',
							params:{},
							reader: { 
								type: 'json', 
								totalProperty: '', 
								root: '' 
							} 
						}, 
						fields:['contact_id','contact_name'],
						autoLoad:true
	            	}),
	            	valueField   : 'contact_id',
                    displayField : 'contact_name',
	            	listeners: {
	            		// 获取联系人列表
	            		expand : function(combo,records,e){
			        		// 获得所选Grid页面
			       			var grid = Ext.getCmp('tab-deal-express');
			       			// 获得页面对应Store
			       			var store = grid.getStore();
			       			// 获得选中模型
			       			var selModel = grid.getSelectionModel().getSelection()[0];
			       			// 选择行索引
			       			var number = store.indexOf(selModel);
			       			// 获得选中行要取得的值
			       			var recordSelected = grid.getStore().getAt(number);
			       			var store = this.getStore();
			       			store.on('beforeload', function(store) {
			         			Ext.apply(store.proxy.extraParams , {cust_id : recordSelected.get('cust_id')});
							});
			       			store.load();
		        	   },
		        	   // 更新收件人信息
		        	   blur : function(combo,the, e) {
				        	var contact_id = combo.value;
				      		// 获得所选Grid页面
				      		var grid = Ext.getCmp('tab-deal-express');
				      		// 获得页面对应Store
				      		var store = grid.getStore();
				      		// 获得选中模型
				      		var selModel = grid.getSelectionModel().getSelection()[0];
				      		// 选择行索引
				      		var number = store.indexOf(selModel);
				      		// 获得选中行要取得的值
				      		var recordSelected = grid.getStore().getAt(number);
				      		// 获取id
				      		var id = recordSelected.get('id');
				      		var oldvalue = recordSelected.get('receiver');
				      		if (contact_id != oldvalue) {
				      			if (id != '' && id != null && contact_id != '' && contact_id != null) {
					      			// 修改收件人信息
					      			Share.AjaxRequest({
					    				url : ctx + '/updateExpress',  // 表名编辑
					    				params : {
					    					id : id,
					    					contact_id : contact_id
					    				},
					    				callback : function(json) {
					    					if (json.resultcode == 0) {
					    						store.reload();
					    					} else {
					    						Share.ShowMessage('I0007', '编辑');
					    					}
					    				}
					    			});
					      		}
				      		}
			        	}
	            	}
				}
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align: 'left',
                style:'text-align:center;',
				dataIndex : 'department',
				text : Share.T('所属部门')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'invoice_no',
				text : Share.T('发票号码')
			}, {
				xtype : 'gridcolumn',
				renderer : Ext.util.Format.numberRenderer('000,000,000.00'),
				width : 100,
				align : 'right',
				dataIndex : 'amount',
				style:'text-align:center;',
				text : Share.T('发票金额')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'invoice_date',
				text : Share.T('发票日期'),
				format : 'y/m/d H:i:s'
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'express',
				style:'text-align:center;',
				text : Share.T('快递公司'),
				editor : {
					xtype : 'combo',
					editable : false,
	           		labelWidth:60,
	           		fieldStyle:'background:#FFFF80;',
	       			valueField : 'value',
	            	displayField : 'text',
	            	store : new Ext.data.JsonStore({
						proxy: { 
							type: 'ajax', 
							url : ctx + '/getExpressType',
							params:{},
							reader: { 
								type: 'json', 
								totalProperty: '', 
								root: '' 
							} 
						},
						fields:['text','value'], 
						autoLoad:true
	            	}),
	            	listeners:{
	            		blur : function(combo,records,e){
				        	var express = combo.value;
				      		// 获得所选Grid页面
				      		var grid = Ext.getCmp('tab-deal-express');
				      		// 获得页面对应Store
				      		var store = grid.getStore();
				      		// 获得选中模型
				      		var selModel = grid.getSelectionModel().getSelection()[0];
				      		// 选择行索引
				      		var number = store.indexOf(selModel);
				      		// 获得选中行要取得的值
				      		var recordSelected = grid.getStore().getAt(number);
				      		// 获取id
				      		var id = recordSelected.get('id');
				      		var oldvalue = recordSelected.get('express');
				      		if (express != oldvalue) {
				      			if (express != null && express != '' && id != '' && id != null) {
					      			// 修改快递公司信息
					      			Share.AjaxRequest({
					    				url : ctx + '/updateExpress',  // 表名编辑
					    				params : {
					    					id : id,
					    					express : express
					    				},
					    				callback : function(json) {
					    					if (json.resultcode == 0) {
					    						store.reload();
					    					} else {
					    						Share.ShowMessage('I0007', '编辑');
					    					}
					    				}
					    			});
					      		}
				      		}
			        	}
	            	}
				}
			}, {
				xtype : 'gridcolumn',
				renderer : Ext.util.Format.numberRenderer('000,000,000.00'),
				width : 100,
				align : 'right',
				dataIndex : 'tax_amount',
				style:'text-align:center;',
				text : Share.T('税额')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'status',
				text : Share.T('状态'),
				hidden : true
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'express_no',
				text : Share.T('快递单号'),
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'delivery_person',
				text : Share.T('扫描人'),
			}, 
			{
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'remark',
				style:'text-align:center;',
				text : Share.T('备注')
			},{
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref02',
				style:'text-align:center;',
				text : Share.T('参考字段2')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref03',
				style:'text-align:center;',
				text : Share.T('参考字段3')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref04',
				style:'text-align:center;',
				text : Share.T('参考字段4')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref05',
				style:'text-align:center;',
				text : Share.T('参考字段5')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref06',
				style:'text-align:center;',
				text : Share.T('参考字段6')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref07',
				style:'text-align:center;',
				text : Share.T('参考字段7')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref08',
				style:'text-align:center;',
				text : Share.T('参考字段8')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref09',
				style:'text-align:center;',
				text : Share.T('参考字段9')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref10',
				style:'text-align:center;',
				text : Share.T('参考字段10')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref11',
				style:'text-align:center;',
				text : Share.T('参考字段11')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref12',
				style:'text-align:center;',
				text : Share.T('参考字段12')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref13',
				style:'text-align:center;',
				text : Share.T('参考字段13')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref14',
				style:'text-align:center;',
				text : Share.T('参考字段14')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref15',
				style:'text-align:center;',
				text : Share.T('参考字段15')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref16',
				style:'text-align:center;',
				text : Share.T('参考字段16')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref17',
				style:'text-align:center;',
				text : Share.T('参考字段17')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref18',
				style:'text-align:center;',
				text : Share.T('参考字段18')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref19',
				style:'text-align:center;',
				text : Share.T('参考字段19')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'left',
				dataIndex : 'ref20',
				style:'text-align:center;',
				text : Share.T('参考字段20')
			} ],
			viewConfig : {
				enableTextSelection : true
			},
			selModel : Ext.create('Ext.selection.CheckboxModel', {
				checkOnly : false
			}),
			dockedItems : [ {
				xtype : 'toolbar',
				dock : 'top',
				items : [ {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combobox',
					id : 'expressCombobox',
					fieldLabel : Share.T('快递公司'),
					labelWidth : 60,
					valueField : 'value',
					displayField : 'text',
					store : new Ext.data.JsonStore({
						proxy : {
							type : 'ajax',
							url : ctx + '/getExpressType',
							params : {},
							reader : {
								type : 'json',
								totalProperty : '',
								root : ''
							}
						},
						fields : [ 'text', 'value' ],
						autoLoad : true
					}),
					value : 1,
					listeners : {
						beforequery : function(e) {
        					var combo = e.combo;   
        					if(!e.forceAll){   
        						var value = e.query;
        						value = value.toLowerCase();
        						combo.store.filterBy(function(record,id){
        							var text = record.get(combo.displayField).toLowerCase(); 
        							return (text.indexOf(value)!=-1);   
        						});
        						combo.expand();   
        						return false;   
        					}
    					},
						select : function(combo, records, e) {
							var express = combo.value;
							var tabpanelId = 'tab-deal-express';
							var tab = Ext.getCmp(tabpanelId);
							var store = tab.getStore();
							store.currentPage = 1;
							store.removeAll();
							store.on('beforeload', function(store) {
								Ext.apply(store.proxy.extraParams, {
									express : express
								});
							});
							store.load();
						}
					}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'textfield',
					id : 'expressStartNo',
					fieldLabel : Share.T('起始快递单号'),
					emptyText : Share.T('请输入起始快递单号...'),
					blankText : Share.T('此项目为必填项目'),
					labelWidth : 90,
					maxLength : 20,
					width : 240,
					vtype : "alphanum",
					allowBlank : false,
					vtypeText : Share.T("快递单号只能由数字和英文字母组成"),
					msgTarget  : 'side',
					editable : true
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'radiogroup',
					id : 'combine',
					name : 'combine',
					fieldLabel : Share.T('合并'),
					labelWidth : 40,
					width : 270,
					items : [ {
						xtype : 'radio',
						name : 'cmbine',
						boxLabel : Share.T('客户'),
						width : 60,
						inputValue : 0
					}, {
						xtype : 'radio',
						name : 'cmbine',
						boxLabel : Share.T('客户+收件人'),
						checked : true,
						width : 100,
						inputValue : 1
					}, {
						xtype : 'radio',
						name : 'cmbine',
						boxLabel : Share.T('不合并'),
						width : 70,
						inputValue : 2
					} ]
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'numberfield',
					hideTrigger : true,
					id : 'printNum',
					fieldLabel : Share.T('打印数量'),
					labelWidth : 60,
					msgTarget  : 'qtip',
					width : 100,
					regex : /^[0-9]*[1-9][0-9]*$/,
					allowBlank : false,
					blankText : Share.T('此项目为必填项目'),
					regexText : Share.T("请填入正整数"),
					editable : true
				}, Share.T('件'), {
					xtype : 'tbseparator'
				}, {
					xtype : 'tbfill'
				} ]
			},
			{
                xtype: 'pagingtoolbar',
                dock: 'bottom',
                width: 360,
                inputItemWidth:45,
                displayInfo: true,
                store : 'ExpressPrint',
                plugins: [{
                    ptype: "pagesize",
                    uxPageSize: page_size}]
            }]
		});
		me.callParent(arguments);
	}
});